import java.util.ArrayList;
import java.util.List;

// 设备管理类：统一管理设备的网络和USB连接（体现接口回调）
public class DeviceManager {
    // 存储所有设备（多态：父接口引用指向子实现）
    private List<Device> deviceList = new ArrayList<>();

    // 添加设备
    public void addDevice(Device device) {
        deviceList.add(device);
    }

    // 统一处理所有网络设备的连接（接口回调：通过NetworkDevice接口调用方法）
    public void connectAllNetworkDevices() {
        System.out.println("\n=== 开始连接所有网络设备 ===");
        for (Device device : deviceList) {
            // 判断设备是否实现了NetworkDevice接口
            if (device instanceof NetworkDevice) {
                // 强制转换为子接口，调用网络连接方法（接口回调）
                ((NetworkDevice) device).connectNetwork();
            }
        }
    }

    // 统一处理所有USB设备的连接（接口回调）
    public void connectAllUsbDevices() {
        System.out.println("\n=== 开始连接所有USB设备 ===");
        for (Device device : deviceList) {
            // 判断设备是否实现了UsbDevice接口
            if (device instanceof UsbDevice) {
                // 强制转换为子接口，调用USB连接方法（接口回调）
                ((UsbDevice) device).connectUsb();
            }
        }
    }
}